yum 安装
nginx http 基本配置
cp /etc/nginx/nginx.conf{,.origin}
mkdir -p /etc/nginx/{http.d,local.d,modules.d,special.d}
http 基本配置
1 |
|
gzip 模块配置
1 |
|
fastcgi模块在http中配置
1 |
|
fastcgi模块在location中配置
1 |
|
fastcgi 缓存参数配置(location)
# 缓存目录会自动创建
1 |
|
1 |
|
proxy代理模块配置
1 |
|
proxy代理缓存在http中配置
1 |
|
1 |
|
打开文件缓存
1 |
|
server 配置
1 | server { |
nginx http 配置说明
1 | #包含动态模块配置文件 |
fastcgi 配置
fastcgi 在 http 模块配置
1 |
|
fastcgi 在server中配置
1 | server { |
fastcgi 在 location 模块配置
1 |
|
fastcgi_cache 缓存配置参数
fastcgi_cache:缓存fastcgi生成的内容,很多情况是php生成的动态的内容,少了nginx与php的通信的次数,更减轻了php和数据库
1 |
|
fastcgi_cache设置多个磁盘缓存
1 | ## 用到ngx_http_split_clients_module 模块,此模块一般用来做AB测试的。 |
缓存清理
## 方法一:直接删除缓存目录,然后还要运行nginx -s reload,来清理nginx缓存
rm -rf /dev/shm/fpm_cache/*
nginx -s reload
## 方法二:编译使用第三方插件,根据访问路径清理缓存
http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz
https://github.com/FRiCKLE/ngx_cache_purge
1 |
|
proxy代理模块配置
1 |
|
proxy代理缓存配置
proxy_cache:缓存后端服务器的内容,可能是任何内容,包括静态的和动态,减少了nginx与后端通信的次数,节省了传输时间和后端宽带
1 | ## 代理缓存定义 |
1 |
|
## 缓存过期标记说明:
.Expires: 最原始的配置策略,即设置过期时间,但使用效率低下,目前绝大部分已经被Cache-Control(有兴趣的可以去看下http1.0和http1.1);
.Cache-Control:定义缓存资源属性是private或者是public,并且设置缓存多久后过期,本例中,属性为public,60秒过期;
.X-Accel-Expires: 只有nginx能识别的缓存特性header,优先级大于上面两个header,可以设置此header,在nginx侧来重新定义缓存特性;
.Etag和Last-Modified是捆绑生成的: 有些场景下,你希望client端的浏览器长时间缓存,而缓存服务器只短时间缓存文件,以至于当后端服务器更新后,缓存服务器会及时同步,我们就可以使用最后两个header,Last-Modified表示最后修改时间,并声明一个ETag(哈希值),做为缓存内容的标签,具有唯一性;客户端访问请求带有If‑Modified‑Since或者If‑None‑Match header,并申明自己的客户端带有静态缓存文件,以及文件修改日期和ETag值,如果服务器端的版本和Etag值与客户端一致,则服务端会直接返回304 not modified,这个验证流程是非常快的,并且节省网络带宽;
.如果Cache-Control设置为public,则客户端不会去验证资源的有效性,将会一直使用直到过期,同时public也代表资源可以被缓存在web proxy中;
.如果Cache-Control包含must-revalidate,则客户端每一次访问请求资源都会去验证缓存是否有更新;
打开文件缓存
## max:设置缓存中的最大元素数; 在缓存溢出时,删除最近最少使用(LRU)的元素;
## inactive:定义一个时间,如果在此期间未访问该元素,则从该缓存中删除该元素; 默认情况下,它是60秒;
open_file_cache max = 1000 inactive = 20s;
## 打开文件缓存的过期时间验证间隔
open_file_cache_valid 60s;
## 在inactive时间内,访问多少次就缓存
open_file_cache_min_uses 2;
## 启用或禁用文件查找错误的缓存,默认值off
#open_file_cache_errors on;
参考:http://www.cnblogs.com/cmfwm/p/7659179.html
Nginx 的 open_file_cache 相关配置可以缓存静态文件的元信息,在这些静态文件被频繁访问时可以显着提升性能。
注意不会缓存文件内容,只缓存文件元信息。还是慎用此功能。
被缓存的文件元信息包括:
fd,文件被打开一次后,fd保留使用
size
path
last modified time
由于 nginx 还持有原文件的 fd,所以你删除此文件后,文件并不会真正消失, client 还是能通过原路径访问此文件。即便你删除后又新建了一个同名文件,在当前缓存更新周期内能访问到的还是原文件的内容。
文件大小调整,可能导致发给客户端的信息并非是修改后文件内容。
如果你的静态文件内容变化频繁并且对时效性要求较高,一般应该把 open_file_cache_valid 设置的小一些,以便及时检测和更新。
如果变化相当不频繁的话,那就可以设置大一点,在变化后用 reload nginx 的方式来强制更新缓存。
对静态文件访问的 error 和 access log 不关心的话,可以关闭已提升效率。
location 说明
1.=开头表示精确匹配,如 A 中只匹配根目录结尾的请求,后面不能带任何字符串。
2.^~ 开头表示uri以某个常规字符串开头,不是正则匹配。
3.~ 开头表示区分大小写的正则匹配;
4.~* 开头表示不区分大小写的正则匹配
5./ 通用匹配, 如果没有其它匹配,任何请求都会匹配到
顺序 no优先级:
(location =) > (location 完整路径) > (location ^~ 路径) > (location ,* 正则顺序) > (location 部分起始路径) > (/)
压缩模块
1 |
|
连接限制
1 |
|
1 |
|
geoip模块加载
# 需要配置在nginx.conf文件的最顶端。
1 |
|
1 |
|
常用的标准模块
核心模块:
core module
常用的标准模块:
HTTP modules:
ngx_http_core_modules http核心功能模块(重要)
ngx_http_ssl_module http信道加密模块(重要)
ngx_http_upstream_module http定义服务器组模块(重要)
ngx_http_fastcgi|uWSGI|SCGI_module http web api接口模块(重要)
ngx_http_proxy_module http反向代理模块(重要)
ngx_http_gzip_module http gzip压缩传输模块(次一级)
ngx_http_log_module http日志模块(次一级)
ngx_http_referer_modulehttp防盗链模块(次一级)
ngx_http_rewrite_module http重定向模块(次一级)
ngx_http_access_module http权限控制模块
ngx_http_auth_basic_module http认证模块
ngx_http_stub_status_module http状态模块
ngx_http_headers_module http首部信息模块
Mail modules:
用的少
Stream modules:
ngx_stream_core_module http的伪四层负载均衡模块
启用 aio 线程池
http://www.infoq.com/cn/articles/thread-pools-boost-performance-9x
http、 server,或者location上下文中包含aio threads指令即可:
aio threads;
这是线程池的最简配置。实际上的精简版本示例如下:
thread_pool default threads=32 max_queue=65536;
aio threads=default;
这里定义了一个名为"default",包含32个线程,任务队列最多支持65536个请求的线程池。
如果任务队列过载,NGINX将输出如下错误日志并拒绝请求:
thread pool "NAME" queue overflow: N tasks waiting
http {
thread_pool one threads=128 max_queue=0;
thread_pool two threads=32;
server {
location /one {
aio threads=one;
}
location /two {
aio threads=two;
}
}
…
}
https://www.cnblogs.com/felixzh/category/882480.html
nginx http2 介绍
https://blog.csdn.net/zhuyiquan/article/details/52585941